package com.munhrasoft.dinamica.converters;

import java.util.logging.Logger;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.munhrasoft.dinamica.business.entities.GrupoPassos;
import com.munhrasoft.dinamica.business.logic.GrupoPassosEJB;

@FacesConverter(value="grupoPassosConverter")
public class GrupoPassosConverter implements Converter {
	
	private GrupoPassosEJB grupoPassosEJB;
	
	private static Logger logger = Logger.getLogger(GrupoPassosConverter.class.getName());
	
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {	
		
		logger.info("getAsObject Validation Result "+arg0.isValidationFailed());
		
		try {
			grupoPassosEJB = (GrupoPassosEJB) new InitialContext().lookup("java:global/dinamica-control/GrupoPassosEJB");
		} catch (NamingException e) {
			// TODO Incluir aqui uma mensagem comum pois algo fatal aconteceu
			e.printStackTrace();
		}
		
		if (arg2 == null){
			return null;
		}else{
			// TODO pode ser que a lista seja vazia ai vai ter que fazer uma validacao
			return grupoPassosEJB.findByTitulo(arg2).get(0);
		}
		
	}

	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {	
		logger.info(" getAsString Validation Result "+arg0.isValidationFailed());
		if (arg2 == null){
			return null;
		}else{
			return ((GrupoPassos) arg2).getTitulo();
		}	
	}
}
